// 全局js 所有的html都应该引入

//========================配置axios拦截器
//使用axios前置拦截器，让所有的axios请求都携带token
axios.interceptors.request.use(config=>{
    //携带token
    let token =  localStorage.getItem("token");//UUID 串
    if(token){
        config.headers['token']=token;
    }
    return config;
},error => {
    Promise.reject(error);
});

// 使用axios后置拦截器，处理没有登录请求
axios.interceptors.response.use(result=>{
    console.log(result.data+"jjjjjjj");
    let data = result.data;
    if(!data.success && data.message==="noLogin")
    //2.  跳转到登录页
        location.href="login.html"
    return result;
},error => {
    Promise.reject(error);
})


//配置axios的全局基本路径    后端接口的访问路径
axios.defaults.baseURL='http://localhost:8080/'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios

//自己写类似于router的前置拦截
let url = location.href;
//特殊资源需校验权限，如果没有登录，就阻止放行
if(url.indexOf("/login.html") == -1 && url.indexOf("/register.html") == -1
    && url.indexOf("/callback.html") == -1 && url.indexOf("/binder.html") == -1){
    let loginInfo = localStorage.getItem("loginInfo");
    if(!loginInfo){//没有登录，跳到登录页面
        location.href="login.html"
    }
}

/**
 * 解析url获取参数对象
 * @param url
 * @returns {{}}
 */
function parseUrlParams2Obj(url){
    //获取请求参数
    let paramStr = url.substring(url.indexOf("?")+1);//code=021FdXFa14mYlA016OGa1L3R4X0FdXFO&state=1
    let paramStrs = paramStr.split("&");//[code=021FdXFa14mYlA016OGa1L3R4X0FdXFO,state=1]
    let paramObj = {};
    for(let i=0;i<paramStrs.length;i++){
        let paramName = paramStrs[i].split("=")[0];//code
        let paramValue = paramStrs[i].split("=")[1];//021FdXFa14mYlA016OGa1L3R4X0FdXFO
        //动态给对象设置属性
        paramObj[paramName] = paramValue;
    }
    return paramObj;
}